<script setup lang="ts">
// type Direction = 'up' | 'down' | 'left' | 'right'
// 在用在数字字面量联合 场景用枚举比较多
// type Direction = 0 | 1 | 2 | 3
/**
 * Direction 语法有点像接口 interface 接口名 {}
 * enum 枚举名 {
 *  大驼峰,
 *  大驼峰
 * }
 * 以上写法是简写，默认就是数字枚举，且数字从0开始计数
 * 枚举是可以执行的代码，不像类型别名,接口只是声明类型
 * 枚举可以当类型注解
 * 他也可以执行，使用方式就像对象取值这样 就是因为可以执行所以枚举建议写在ts文件
 *
 * 数字枚举 最常用
 * 另一种语法
 * enum 枚举名 {
 *  大驼峰 = 数字
 * }
 * 指定数字的那个字段，后面的字段会累加
 *
 *
 * 字符串枚举 一般常用（字面量联合类型）
 *  用的是字符串枚举，每个字段必须都要赋值字符串
 *
 * 数字字符串枚举混合
 */
enum Direction {
  Up = 100,
  Down,
  Left = 999,
  Right
}
console.log(Direction.Up)
console.log(Direction.Left)
// const dir: Direction = Direction.Left
// const dir1: Direction = 2
// dir
// dir1

enum Gender {
  Male = 'm',
  FeMale = 'f'
}
console.log(Gender.Male)
const gender: Gender = Gender.FeMale
gender
console.log(gender)

enum Test {
  A = 0,
  B = 'BB',
  C = 'CC',
  D = 100,
  E = 101,
  F = 'EE',
  G = '102'
}
</script>

<template>
  <div class="playground-page">
    <h1>playground</h1>
  </div>
</template>

<style scoped lang="scss"></style>
